FIG. 1 shows a depiction of a networking system 101 having a switching fabric 102 that switches units of traffic (e.g., packets, cells, frames, TDM time slots, etc.) or portions thereof that have been received by a plurality of ingress ports 10421 through 1042N. Once a unit of traffic (or portion thereof) has been switched through the switching fabric, it is directed to at least one egress port (e.g., at least one of egress ports 10411 through 1041N). Often, each ingress port and egress port (either of which may be referred to as a logical port) corresponds to an amount of bandwidth that is allocated on a networking line.
As such, amongst the more common implementations, a logical port may be regarded as the bandwidth resources committed to a single connection carried over a networking line, the bandwidth resources committed to a group of connections that are carried over a networking line, or the bandwidth resources of an entire networking line. Some implementations may even allow a logical port correspond to the bandwidth resources committed to more than one network line. A networking line is a typically implemented with a copper or optical communication link. For simplicity, FIG. 1 has drawn each logical port as having one associated networking line (e.g., ingress logical ports 10421 through 1042N are associated with ingress networking lines 10521 through 1052N; and, egress logical ports 10411 through 1041N are associated with egress networking lines 10511 through 1051N).
The path that each traffic unit follows (i.e., from its ingress port to its egress port) may be referred to as the flow of the traffic unit. Each flow within the networking system 101 may have one or more associated speeds depending upon how the networking system 101 is integrated into a larger network. For example, if a particular traffic unit arrives at the ingress side along a “low speed” connection and departs from the egress side along a “high speed” connection, the traffic unit's constituent data portions will arrive at networking system 101 at a slower rate than it is transmitted from networking system 101.
Because the networking system 101 can handle networking connections of differing speeds as described above, the networking system 101 may be asked to simultaneously handle a wide range of different flows. As a consequence, an architectural layer referred to as the ingress/egress unit 103 is responsible for: 1) collecting ingress traffic from the ingress logical ports 10421 through 1042N and forwarding the ingress traffic to the switch fabric 102; and, 2) collecting egress traffic from the switch fabric 102 and then distributing it as appropriate to the various egress logical ports 10411 through 1041N.
Because each logical port has its own associated bandwidth or “speed”, the manner in which the ingress ports 10421 through 1042N forward their traffic units (or portions thereof) to the ingress/egress unit 103—and the manner in which the egress ports 10411 through 1041N receive traffic units (or portions thereof) from the ingress/egress unit 103—can become complicated. Specifically, noting that each logical port has its own associated queue: 1) a “fast” ingress logical port queue might regularly “overflow” (causing loss of traffic) if the ingress/egress unit 103 does not receive traffic units (or portions thereof) from the “fast” ingress logical port at a fast enough rate; 2) a “fast” egress logical port queue might regularly “empty out” (so as to starve its associated egress networking line) if the ingress/egress unit 103 does not transmit traffic units (or portions thereof) at a fast enough rate to the “fast” egress logical port; 3) a “slow” ingress logical port queue might regularly “empty out” (which corresponds to operational inefficiency) if the ingress/egress unit 103 receives traffic units (or portions thereof) at too fast a rate from the “slow” ingress logical port; and, 4) a “slow” egress logical port queue might regularly “overflow” (so as to cause loss of traffic) if the ingress/egress unit 103 forwards traffic units (or portions thereof) at too fast a rate to the “slow” egress logical port.
Thus, to implement the networking system's associated traffic flows in both a proper and efficient manner, the ingress/egress unit 103 should tailor the rate of traffic flow with each logical port according its speed. With the increased complexity of today's networks, not only is the number of logical ports per networking system increasing; but also, the variation in bandwidth amongst logical ports maintained by a networking system is also increasing (e.g., from very high speed logical ports to very low speed logical ports and a wide range of intermediate speed logical ports). Both of these trends push the sophistication and difficulty of the design of the ingress/egress traffic unit 103.
The networking system 101 of FIG. 1 therefore uses a polling scheme. In a polling scheme, each logical port has some form of intelligence that is “aware” of the state of its corresponding queue (i.e., how full or empty its queue is) and is capable of communicating the state of its queue, in some manner, with the ingress/egress unit 103. For example, in the egress direction, polling unit 103, is responsible for “polling” each egress port at a rate that is consistent with its speed, and for each poll, effectively asking the polled logical port if it has sufficient queue space to receive a next traffic unit (or portion thereof). If so, the polling unit authorizes the transfer of a traffic unit (or portion thereof) to the polled egress port.
In the ingress direction, polling unit 1032 is responsible for “polling” each ingress port at a rate that is consistent with its speed, and for each poll, effectively asking the polled logical port if it has a next traffic unit (or portion thereof) to forward toward the switching fabric 102. If so, the polling unit authorizes the transfer of a traffic unit (or portion thereof) from the polled ingress port. In alternate embodiments, the polling intelligence may be integrated into the logical ports themselves (e.g., each egress logical port is configured to ask the ingress/egress unit 103 to transmit a traffic unit at a polling rate that is consistent with its speed; each ingress logical port is configured to ask the ingress/egress unit 103 to receive a traffic unit at a polling rate that is consistent with its speed).
The communication lines 1071, 1072 used for the polling activity may be implemented as separate serial channels (as suggested by FIG. 1) or with a shared medium (such as a bus). Likewise, the data path lines 1081, 1082 used for the transportation of traffic units (or portions thereof) may be implemented as separate serial channels (as suggested by FIG. 1) or with a shared medium (such as a bus). Queues 1061, 1062 may be used to queue traffic between the logical ports and the switch fabric in both directions. Note that more than one logical port may be implemented onto a single line interface card (LIC)) that is “plugged into” the networking system's backplane